/**
 * Created by Administrator on 2017/7/17.
 */

/**
 * @author linruoyu
 **/
public class TypeInference  {

    public static void main(String[] args) {
        final Value< String > value = new Value<>();
        value.getOrDefault( "22", Value.defaultValue() );
        //在Java 7中，相同的例子将不会通过编译，正确的书写方式是 Value.< String >defaultValue()。
    }
}

class Value< T > {
    public static< T > T defaultValue() {
        return null;
    }

    public T getOrDefault( T value, T defaultValue ) {
        return ( value != null ) ? value : defaultValue;
    }
}
